package com.zj.web.bean;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * 响应结果类
 * @param <T> 响应数据的类型
 *           项目中的WEB层的结果响应类，用于封装Controller层的方法的返回值
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class ResponseResult<T> {
    private Integer code;  //业务状态码 应用程序执行结果的响应码： 1.成功 0：失败
    private String msg;    //相应信息 应用程序执行结果的响应消息,通常只有code为0时，才有msg
    private T data;   //响应数据 应用程序执行结果的响应数据 通常只有code为1时，才有data

    public static ResponseResult ok(){
        return ResponseResult.builder().code(1).msg("操作成功").build();
    }
    public static ResponseResult ok(String msg){
        return ResponseResult.builder().code(1).msg(msg).build();
    }
    public static ResponseResult error(){
        return ResponseResult.builder().code(0).msg("操作失败").build();
    }
    public static ResponseResult error(String msg){
        return ResponseResult.builder().code(0).msg(msg).build();
    }

    //放入Data的问题
    public ResponseResult<T> setdata(T t){
        this.data=t;
        return this;
    }
    //使用链式调用
}
